diff --git a/tests/codeigniter/helpers/language_helper_test.php b/tests/codeigniter/helpers/language_helper_test.php
index 06932b9..1fe0ef1 100644
--- a/tests/codeigniter/helpers/language_helper_test.php
+++ b/tests/codeigniter/helpers/language_helper_test.php
@@ -5,7 +5,9 @@
 	public function test_lang()
 	{
 		$this->helper('language');
-		$this->ci_instance_var('lang', new Mock_Core_Lang());
+		$lang = $this->getMock('CI_Lang', array('line'));
+		$lang->expects($this->any())->method('line')->will($this->returnValue(FALSE));
+		$this->ci_instance_var('lang', $lang);
 
 		$this->assertFalse(lang(1));
 		$this->assertEquals('<label for="foo"></label>', lang(1, 'foo'));
diff --git a/tests/codeigniter/libraries/Calendar_test.php b/tests/codeigniter/libraries/Calendar_test.php
index 95668d7..952e8a8 100644
--- a/tests/codeigniter/libraries/Calendar_test.php
+++ b/tests/codeigniter/libraries/Calendar_test.php
@@ -2,12 +2,12 @@
 
 class Calendar_test extends CI_TestCase {
 
-	function __construct()
+	function set_up()
 	{
-		$obj = new stdClass;
-		$obj->calendar = new Mock_Libraries_Calendar();
-
-		$this->calendar = $obj->calendar;
+		$lang = $this->getMock('CI_Lang', array('load', 'line'));
+		$lang->expects($this->any())->method('line')->will($this->returnValue(FALSE));
+		$this->ci_instance_var('lang', $lang);
+		$this->calendar = new CI_Calendar();
 	}
 
 	function test_initialize()
@@ -20,9 +20,6 @@
 		$this->assertEquals('monday', $this->calendar->start_day);
 	}
 
-	/**
-	 * @covers Mock_Libraries_Calendar::parse_template
-	 */
 	function test_generate()
 	{
 		$no_events = '<table border="0" cellpadding="4" cellspacing="0">
diff --git a/tests/codeigniter/libraries/Upload_test.php b/tests/codeigniter/libraries/Upload_test.php
index 546cebc..1bd8f14 100644
--- a/tests/codeigniter/libraries/Upload_test.php
+++ b/tests/codeigniter/libraries/Upload_test.php
@@ -7,7 +7,8 @@
 		$ci = $this->ci_instance();
 		$ci->upload = new Mock_Libraries_Upload();
 		$ci->security = new Mock_Core_Security();
-		$ci->lang = new Mock_Core_Lang();
+		$ci->lang = $this->getMock('CI_Lang', array('load', 'line'));
+		$ci->lang->expects($this->any())->method('line')->will($this->returnValue(FALSE));
 		$this->upload = $ci->upload;
 	}
 
diff --git a/tests/mocks/core/lang.php b/tests/mocks/core/lang.php
deleted file mode 100644
index 27ea3fa..0000000
--- a/tests/mocks/core/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-class Mock_Core_Lang extends CI_Lang {
-
-	public function line($line = '')
-	{
-		return FALSE;
-	}
-
-	public function load($langfile, $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')
-	{
-		return;
-	}
-
-}
\ No newline at end of file
diff --git a/tests/mocks/libraries/calendar.php b/tests/mocks/libraries/calendar.php
deleted file mode 100644
index 8fee536..0000000
--- a/tests/mocks/libraries/calendar.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-class Mock_Libraries_Calendar extends CI_Calendar {
-
-	public function __construct($config = array())
-	{
-		$this->CI = new stdClass;
-		$this->CI->lang = new Mock_Core_Lang();
-
-		if ( ! in_array('calendar_lang.php', $this->CI->lang->is_loaded, TRUE))
-		{
-			$this->CI->lang->load('calendar');
-		}
-
-		$this->local_time = time();
-
-		if (count($config) > 0)
-		{
-			$this->initialize($config);
-		}
-
-		log_message('debug', 'Calendar Class Initialized');
-	}
-
-}
\ No newline at end of file
